package cl.golive.d2menu.utils.tableUtils;

import cl.golive.d2menu.obj.Compra;
import cl.golive.d2menu.obj.Plato;
import cl.golive.d2menu.utils.modeloUtils.CompraTableModel;
import cl.golive.d2menu.utils.modeloUtils.PlatosTableModel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author whyem
 */
public class AccionesTablaUtil {

    public static Compra obtenerPlatoSeleccionadoCompra(JTable grilla) {
        Compra platoCompraSeleccionado = null;
        int filaSeleccionada = grilla.getSelectedRow();
        if (filaSeleccionada != -1) {
            CompraTableModel model = (CompraTableModel) grilla.getModel();
            platoCompraSeleccionado = model.getItemPlatoCompraAt(filaSeleccionada, model);
        }
        return platoCompraSeleccionado;
    }

    public static void quitarPlatoDeListaPedido(JTable grilla, Compra platoCompra) {
        CompraTableModel modeloCompra = null;
        try {
            modeloCompra = (CompraTableModel) grilla.getModel();
            modeloCompra.removeCustomRowPlato(platoCompra, modeloCompra);
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null, "Debe tener platos en la lista, antes de poder quitarlos");
        }
    }

    public static Plato obtenerPlatoSeleccionadoMenu(JTable grilla) {
        Plato platoSeleccionado = null;
        int filaSeleccionada = grilla.getSelectedRow();
        if (filaSeleccionada != -1) {
            PlatosTableModel model = (PlatosTableModel) grilla.getModel();
            platoSeleccionado = model.getItemPlatoAt(model, filaSeleccionada);
        }
        return platoSeleccionado;
    }

    public static void agregarPlatoAListaPedido(JTable grilla, Plato platoActual) {
        CompraTableModel modeloCompra;
        try {
            modeloCompra = (CompraTableModel) grilla.getModel();

        } catch (Exception e) {
            modeloCompra = new CompraTableModel();
        }
        modeloCompra.setColumnIdentifiers(new String[]{"Cantidad", "PlatoId", "CategoriaId", "Nombre de Plato", "Detalle", "Precio", "NombreImagen"});
        modeloCompra.addCustomRowCompra(platoActual, modeloCompra);
        grilla.setModel(new DefaultTableModel());
        grilla.setModel(modeloCompra);
        //SE OCULTAN TODOS LAS COLUMNAS QUE NO SEAN: CANTIDAD (0), NOMBRE DE PLATO (3) Y PRECIO (5)
        UtilesTabla.setOcultarColumnasJTable(grilla, new int[]{1, 2, 4, 6});
        UtilesTabla.setAnchoOptimoGrillaCompra(grilla);
    }
}
